﻿namespace OpenLS.Spreadsheet.Formats.Biff.Records
{
    internal enum XFPropDataBlobType : ushort
    {
        //A FillPattern that specifies the fill pattern.
        FillPattern = 0x0000,
        //An XFPropColor that specifies the foreground color.
        ForegroundColor = 0x0001,
        //An XFPropColor that specifies the background color.
        BackgroundColor = 0x0002,
        //An XFPropGradient that specifies the gradient fill. This is often followed in the same xfPropArray field of the XFProps structure by one or more XFProp structures with xfPropType equal to 0x0004, which provides additional specifications for the gradient fill.
        GradientFill = 0x0003,
        //An XFPropGradientStop that specifies a gradient stop for a preceding XFProp with xfPropType equal to 0x0003 in the same xfPropArray field in the XFProps structure.
        GradientStop = 0x0004,
        //An XFPropColor that specifies the text color.
        TextColor = 0x0005,
        //An XFPropBorder that specifies the top border formatting.
        TopBorder = 0x0006,
        //An XFPropBorder that specifies the bottom border formatting.
        BottomBorder = 0x0007,
        //An XFPropBorder that specifies the left border formatting.
        LeftBorder = 0x0008,
        //An XFPropBorder that specifies the right border formatting.
        RightBorder = 0x0009,
        //An XFPropBorder that specifies the diagonal border formatting.
        DiagonalBorder = 0x000A,
        //An XFPropBorder that specifies the vertical border formatting.
        VerticalBorder = 0x000B,
        //An XFPropBorder that specifies the horizontal border formatting.
        HorizontalBorder = 0x000C,
        //A 1-byte unsigned integer that specifies whether a diagonal-up border is used.
        //MUST be 0 or 1. The value of 1 means that a diagonal-up border is used.
        DiagonalUp = 0x000D,
        //A 1-byte unsigned integer that specifies whether a diagonal-down border is used. MUST be 0 or 1. The value of 1 means that a diagonal-down border is used.
        DiagonalDown = 0x000E,
        //A HorizAlign that specifies the horizontal alignment.
        HorizontalAlignment = 0x000F,
        //A VertAlign that specifies the vertical alignment.
        VerticalAlignment = 0x0010,
        //An XFPropTextRotation that specifies the text rotation.
        TextRotation = 0x0011,
        //A 2-byte unsigned integer that specifies the absolute text indentation level. MUST be less than or equal to 15. The absolute indentation level replaces any previous indentation.
        TextIndentation = 0x0012,
        //A ReadingOrder that specifies the reading order.
        ReadingOrder = 0x0013,
        //A 1-byte unsigned integer that specifies whether cell text is wrapped. MUST be 0 or 1. The value of 1 means that the text is wrapped.
        TextWrapped = 0x0014,
        //A 1-byte unsigned integer that specifies whether cell text is justify distributed. MUST be 0 or 1. The value of 1 means that the text is justify distributed. If this value is 1 then an XFProp with xfPropType equal to 0x000F MUST exist in this xfPropArray field of the XFProps structure and MUST equal 0x07.
        JustifyDistributed = 0x0015,
        //A 1-byte unsigned integer that specifies whether a cell is shrink-to-fit. MUST be 0 or 1. The value of 1 means that the cell is shrink-to-fit.
        ShrinkToFit = 0x0016,
        //A 1-byte unsigned integer that specifies whether a cell is merged. MUST be 0 or 1. The value of 1 means that the cell is merged.
        CellMerged = 0x0017,
        //An LPWideString that specifies the font name used by the cell data. MUST be less than or equal to 32 characters in length.
        FontName = 0x0018,
        //A Bold that specifies the font face weight.
        FontWeight = 0x0019,
        //An Underline that specifies the underline style.
        FontUnderline = 0x001A,
        //A Script that specifies the superscript or subscript style.
        Script = 0x001B,
        //A 1-byte unsigned integer that specifies whether text is italicized. MUST be 0 or 1. The value of 1 means that the text is italic.
        Italic = 0x001C,
        //A 1-byte unsigned integer that specifies whether text has strikethrough formatting applied. MUST be 0 or 1. The value of 1 means that the text has strikethrough formatting applied.
        Strikethrough = 0x001D,
        //A 1-byte unsigned integer that specifies whether text has an outline style. MUST be 0 or 1. The value of 1 means that the text is outline style.
        OutlineStyle = 0x001E,
        //A 1-byte unsigned integer that specifies whether text has a shadow style. MUST be 0 or 1. The value of 1 means that the text is shadow style.
        ShadowStyle = 0x001F,
        //A 1-byte unsigned integer that specifies whether text is condensed. MUST be 0 or 1. The value of 1 means that the text is condensed.
        TextCondensed = 0x0020,
        //A 1-byte unsigned integer that specifies whether text is extended. MUST be 0 or 1. The value of 1 means that the text is extended.
        TextExtended = 0x0021,
        //A 1-byte unsigned integer that specifies a character set. For more information about character sets, see the Windows API LOGFONT structure in [MSDN-FONTS].
        CharacterSet = 0x0022,
        //A 1-byte unsigned integer that specifies a font family. For more information about font families, see the Windows API LOGFONT structure in [MSDN-FONTS]. MUST be greater than or equal to 0 and less than or equal to 5.
        FontFamily = 0x0023,
        //A 4-byte unsigned integer that specifies text size in twips. MUST be greater than or equal to 20 and less than or equal to 8191.
        TextSize = 0x0024,
        //A FontScheme that specifies the font scheme of a theme font.
        FontScheme = 0x0025,
        //A number format as specified by the stFormat field of Format that specifies the number format string.
        NumberFormat = 0x0026,
        //An IFmt that specifies a number format identifier.
        FormatIdentifier = 0x0029,
        //A 2-byte signed integer that specifies the relative text indentation level. The relative indentation level is added to any previous indentation. The value MUST either be greater than or equal to -15 and less than or equal to 15, or it MUST be 255. Values -15 through 15 specify a relative indentation level, and the value 255 specifies the absence of a relative indentation level.
        RelativeTextIndentationLevel = 0x002A,
        //A 1-byte unsigned integer that specifies whether the locked protection property is set to true. MUST be 0 or 1. The value of 1 means that the property is set to true.
        Locked = 0x002B,
        //A 1-byte unsigned integer that specifies whether the hidden protection property is set to true. MUST be 0 or 1. The value of 1 means that the property is set to true.
        Protected = 0x002C,
    }

}